package org.csmzxy.class2333;

public class 作业2 {
    public static void main(String[] args) {
        int sum = sumOfPrimes(100);
        System.out.println("100以内所有素数的和是: " + sum);
    }

    /**
     * 计算n以内所有素数的和
     *
     * @param n 范围上限
     * @return 素数的和
     */
    public static int sumOfPrimes(int n) {
        int sum = 0;
        for (int i = 2; i <= n; i++) { // 从2开始，因为1不是素数
            if (isPrime(i)) {
                sum += i;
            }
        }
        return sum;
    }

    /**
     * 判断一个数是否为素数
     *
     * @param num 需要判断的数
     * @return 如果是素数返回true，否则返回false
     */
    public static boolean isPrime(int num) {
        if (num < 2) {
            return false; // 小于2的数不是素数
        }
        for (int i = 2; i * i <= num; i++) { // 只需检查到sqrt(num)
            if (num % i == 0) {
                return false; // 如果能被整除，则不是素数
            }
        }
        return true; // 否则是素数
    }
}